/**创建Spring Bean的一种特殊方法，可以封装复杂的对象的创建逻辑
 * 1.getBean("myFactoryBean")方法时返回的是个FactoryBean所创建的Bean，如果我们想获取到这个FactoryBean需要在名字前面拼接"&"，行如：getBean("&myFactoryBean")
 * 2.这样创建的Bean不再通常的单例池中，而是在factoryBeanObjectCache中，且没有生成BeanDefinition
 */
package com.example.demospringbootbean;

import org.springframework.beans.factory.FactoryBean;

//通过FactoryBean创建Bean
public class ClassCFactory2 implements FactoryBean<ClassC> {

    @Override
    public ClassC getObject() throws Exception {
        System.out.println("Factory Bean getObject");
        return new ClassC();
    }

    @Override
    public Class<?> getObjectType() {
        System.out.println("Factory Bean getObjectType");
        return ClassC.class;
    }

    @Override
    public boolean isSingleton() {
        return true;
    }
}
